﻿Imports DAO

Public Class CidadeContainer
    Inherits System.Web.UI.UserControl

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not IsPostBack Then
            Me.GetAll()
        End If
    End Sub

    Private service As CidadeService

    Private ReadOnly Property CidadeService() As CidadeService
        Get
            If Me.service Is Nothing Then
                service = New CidadeService()
            End If
            Return service
        End Get
    End Property

    Private Sub NovoClickHandles() Handles ToolbarCRUD1.Novo
        Me.CidadeFormularioCadastro1.AbilitarFormulario()
    End Sub

    Private Sub AtualizarClickHandles() Handles ToolbarCRUD1.Atualizar
        Me.GetAll()
        Me.CidadeConsulta1.LimparConsulta()
    End Sub

    Private Sub ValidarDados(ByVal p As Cidade)
        If p.Nome.Equals("") Then
            Throw New Exception("O nome do Cidade é Obrigatorio")
        End If
    End Sub

    Private Sub EditarClickHandles(ByVal cidadeId As Integer) Handles CidadeConsulta1.Editar
        Try
            Dim p As Cidade = CidadeService.GetById(cidadeId)
            Me.CidadeFormularioCadastro1.CarregarFormulario(p)
        Catch ex As Exception
            Me.Label1.Text = ex.Message
            Me.Label1.ForeColor = Drawing.Color.Red
        End Try
    End Sub

    Private Sub InserirClickHandles(ByVal p As Cidade) Handles CidadeFormularioCadastro1.Inserir
        Try
            Me.ValidarDados(p)
            CidadeService.Insert(p)
            Me.CidadeConsulta1.carregarCidades(Me.CidadeService.GetAll)
            Me.CidadeFormularioCadastro1.DesabilitaFormulario()
            Me.Label1.Text = "Cidade Cadastrado com susseço!"
            Me.Label1.ForeColor = Drawing.Color.Blue
        Catch ex As Exception
            Me.Label1.Text = ex.Message
            Me.Label1.ForeColor = Drawing.Color.Red
        End Try
    End Sub

    Private Sub AlterarClickHandles(ByVal p As Cidade) Handles CidadeFormularioCadastro1.Alterar
        Try
            Me.ValidarDados(p)
            CidadeService.Update(p)
            Me.CidadeConsulta1.carregarCidades(Me.CidadeService.GetAll)
            Me.CidadeFormularioCadastro1.DesabilitaFormulario()
            Me.Label1.Text = "Cidade Alterado com susseço!"
            Me.Label1.ForeColor = Drawing.Color.Blue
        Catch ex As Exception
            Me.Label1.Text = ex.Message
            Me.Label1.ForeColor = Drawing.Color.Red
        End Try
    End Sub

    Private Sub ExluirClickHandles(ByVal cidadeId As Integer) Handles CidadeConsulta1.Excluir
        Try
            Dim p As Cidade = New Cidade(cidadeId)
            Me.CidadeService.Delete(p)
            Me.CidadeConsulta1.carregarCidades(Me.CidadeService.GetAll)
            Me.Label1.Text = "Cidade Excluido com susseço!"
            Me.Label1.ForeColor = Drawing.Color.Blue
        Catch ex As Exception
            Me.Label1.Text = ex.Message
            Me.Label1.ForeColor = Drawing.Color.Red
        End Try
    End Sub

    Private Sub SearchCondicaoClickHandles(ByVal condicoes As List(Of Condicao)) Handles CidadeConsulta1.Search
        Try
            Me.CidadeConsulta1.carregarCidades(Me.CidadeService.Search(condicoes))
        Catch ex As Exception
            Me.Label1.Text = ex.Message
            Me.Label1.ForeColor = Drawing.Color.Red
        End Try
    End Sub

    Private Sub GetAll()
        Try
            Me.CidadeConsulta1.carregarCidades(Me.CidadeService.GetAll)
        Catch ex As Exception
            Me.Label1.Text = ex.Message
            Me.Label1.ForeColor = Drawing.Color.Red
        End Try
    End Sub

End Class